<?php

/*
  +--------------------------------------------------------------------------
  |   Web: http://www.enbac.com
  |   Started date : 30/06/2008
  +---------------------------------------------------------------------------
  |   > Script written by Nova
  +---------------------------------------------------------------------------
 */

if (eregi(basename(__FILE__), $_SERVER['PHP_SELF'])) {
    print "<h1>Incorrect access</h1>You cannot access this file directly.";
    exit();
}

class ajax_ad {

    function playme() {
        $code = AZLib::getParam('code');

        switch ($code) {
            case 'modifyStatus':
                $this->modifyStatus();
                break;
            case 'edit_ad_item':
                $this->edit_ad_item();
                break;
            case 'submit_ad_item':
                $this->submit_ad_item();
                break;
            case 'change_to_edit':
                $this->change_to_edit();
                break;
            case 'active_ad':
                $this->active_ad();
                break;
            case 'updateContract':
                $this->updateContract();
                break;
            case 'updateAdminNote':
                $this->updateAdminNote();
                break;
            case 'updateTT':
                $this->updateTT();
                break;
            case 'upload':
                $this->upload();
                break;
            default:
                $this->home();
                break;
        }
    }

    function home() {
        global $display;
        die("Nothing to do...");
    }

    function updateTT() {
        if (!User::is_login() || !User::have_permit(ADMIN_AD_ITEM)) {
            echo 'not_perm';
            exit();
        }
        $id = (int) Url::get('ad_id');
        $type = (int) Url::get('type');
        $adItem = DB::select('ad_item', " status > -1 AND id = " . $id); // Cập nhật trạng thái thanh toán cho ad_item không bị xóa
        if ($adItem) {
            DB::update('ad_item', array('isPay' => 1), " id = " . $id);
            $arrInsert = array('type' => $type,
                'user_id' => $adItem['user_id'],
                'user_name' => $adItem['user_name'],
                'admin_id' => User::id(),
                'admin_name' => User::user_name(),
                'cpc_id' => $adItem['id'],
                'created' => TIME_NOW,
                'click' => $adItem['click'],
                'price' => $adItem['click'] * $adItem['per_price'],
                'ad_type' => $adItem['ad_type'],
                'link' => $adItem['link']
            );
            DB::insert('cpc_log', $arrInsert);

            if($adItem['payType'] == 3)// Nếu là quảng cáo được thanh toán bằng phương thức trả sau
            {
                // Cập nhật số lượng tiền trả sau đã dùng
                $money_used = $adItem['click'] * $adItem['per_price']/1000;

                // Trừ money_used của thành viên, tăng khả năng trả sau của khách hàng
                DB::query("UPDATE user SET money_used = money_used - (".$money_used. ") WHERE id=".$adItem['user_id']);

                // Cập nhật số tiền có thể trả sau vào cache thành viên
                User::getUser($adItem['user_id'],0,1);

                // Cập nhật trạng thái đã thanh toán cho bản ghi log trong bảng payment_premium
                DB::query("UPDATE payment_premium SET status = 1,user_m='".User::user_name()."',time_m=".TIME_NOW." WHERE log_id=$id AND type=4");
            }

            echo 'success';
        } else {
            echo 'not_ad';
        }
        exit();
    }

    function updateContract() {
        if (!User::is_login() || !User::have_permit(ADMIN_AD_ITEM)) {
            echo 'not_perm';
            exit();
        }
        $id = (int) Url::get('ad_id');
        $numContract = Url::get('numContract');
        $adItem = DB::select('ad_item', " status > -1 AND id = " . $id);
        if ($adItem) {
            DB::update('ad_item', array('numContract' => $numContract), " status > -1 AND id = " . $id);
            echo 'success';
        } else {
            echo 'not_ad';
        }
        exit();
    }

    function updateAdminNote() {
        if (!User::is_login() || !User::have_permit(ADMIN_AD_ITEM)) {
            echo 'not_perm';
            exit();
        }
        $id = (int) Url::get('ad_id');
        $admin_note = Url::get('admin_note');
        $adItem = DB::select('ad_item', " status > -1 AND id = " . $id);
        if ($adItem) {
            DB::update('ad_item', array('admin_note' => $admin_note), " status > -1 AND id = " . $id);
            echo 'success';
        } else {
            echo 'not_perm';
        }
        exit();
    }

    function active_ad() {
        //chi kich hoat hoac ha do admin xu ly
        if (!User::is_login() || User::is_block()) {
            echo 'not_perm';
            exit();
        }
        $id = (int) Url::get('id');
        $status = Url::get('status');
        $adItem = DB::select('ad_item', " status > -1 AND id = $id");
        $cpcLog = DB::select('cpc_log', "cpc_id = {$adItem['id']}");

        //add by nhatvt
        if(is_array($cpcLog) && $cpcLog['type'] == 3){
            $arrOrderService = DB::select('order_services', "user_use = '{$adItem['user_name']}' AND active=1");

            if($arrOrderService['cpc_left'] == 0 && $arrOrderService['type_scs'] != 'Gói Cơ bản'){
                $cpc_left = $arrOrderService['cpc_count']*$arrOrderService['time_use'];
            }else{
                $cpc_left = $arrOrderService['cpc_left'];
            }
            if($cpc_left < $adItem['click']){
                echo "over_cpc";
                exit;
            }else{
                $cpc_left = $cpc_left - $adItem['click'];
                DB::update('order_services', array('cpc_left' => $cpc_left), "id={$arrOrderService['id']}");
            }
        }
        //end
        
        if ($adItem['end_time'] < TIME_NOW && $status != -1) {
            echo 'expired';
        } else if ($adItem && User::have_permit(ADMIN_AD_ITEM)) {
            include_once(ROOT_PATH . 'includes/nusoap/nusoap.php');
            require_once(ROOT_PATH . 'includes/nusoap/tokenpartner.php');
            require_once(ROOT_PATH . 'core/CpcLib.php');
            $CpcLip = new CpcLib();
            $return = $CpcLip->sendToSoap($adItem);
            //gui mail cho nhung nguoi lien quan
            if ($return) {
                if ($return['status'] == 2) {
                    $to = 'quynhnguyennhu@vccorp.vn';
                    $subject = 'Thư kích hoạt cpc từ enbac.com';
                    $user = User::getUser($adItem['user_id']);
                    $content = 'Tên khách : <a href="' . WEB_ROOT . $user['user_name'] . '">' . (($user['full_name']) ? $user['full_name'] : $user['user_name'] ) . '</a>';
                    $content .= '<br>Số HD : ' . $adItem['numContract'];
                    $content .= '<br>Click mua :' . $adItem['click'];
                    $content .= '<br>Lịch/ngày chạy :' . date('d/m/Y', $adItem['start_time']);
                    $content .= '<br>Ngày kết thúc :' . date('d/m/Y', $adItem['end_time']);
                    $cc = 'huongnguyenthanh@vccorp.vn';
                    System::send_mail($to, $subject, $content, '', $cc);
                }
                echo 'success';
            } else {
                echo 'error';
            }
        } else {
            echo 'not_perm';
        }
        exit();
    }

    function modifyStatus() {
        // khi user ha quang cao
        $json = array();
        if (!User::is_login() || User::is_block()) {
            $json['error'] = 'not_perm';
        } else {
            $ad_id = (int) Url::get('ad_id', 0);
            $status = (int) Url::get('status', 0);
            //-1: xoa , 0:nguoi dung dung, 1:doi kiem duyet, 3: quang cao can phai sua, 4: admin ha
            $item = ($ad_id > 0) ? DB::select('ad_item', " id = " . $ad_id) : '';
            if ($item) {
                if ($item['end_time'] < TIME_NOW && $status != -1) {
                    $json['error'] = 'expired';
                } else if (($item['user_id'] == User::id()) || User::have_permit(ADMIN_AD_ITEM)) {
                    $value = array(
                        'user_edit' => User::id(),
                        'name_edit' => User::user_name(),
                        'changed' => TIME_NOW
                    );
                    if ($item['status'] == 2) {
                        include_once(ROOT_PATH . 'includes/nusoap/nusoap.php');
                        require_once(ROOT_PATH . 'includes/nusoap/tokenpartner.php');
                        require_once(ROOT_PATH . 'core/CpcLib.php');
                        $CpcLip = new CpcLib();
                        $return = $CpcLip->sendToSoap($item);
                        if (!$return) {
                            $json['error'] = 'error';
                            echo json_encode($json);
                            exit();
                        }
                    } else {
                        $value['status'] = $status;
                    }
                    DB::update('ad_item', $value, ' id = ' . $item['id']);


                    if(($item['payType'] == 3)&&($item['isPay'] == 0)) // Nếu là quảng cáo được thanh toán bằng phương thức trả sau và chưa được thanh toán (chưa được trừ money_used)
                    {
                        // Cập nhật số lượng tiền trả sau đã dùng
                        $money_used = $item['click'] * $item['per_price']/1000;

                        // Trừ money_used của thành viên, tăng khả năng trả sau của khách hàng
                        DB::query("UPDATE user SET money_used = money_used - (".$money_used. ") WHERE id=".$item['user_id']);

                        // Cập nhật số tiền có thể trả sau vào cache thành viên
                        User::getUser($item['user_id'],0,1);

                        // Soft delete bản ghi log trong bảng payment_premium
                        DB::query("UPDATE payment_premium SET status = 2,user_m='".User::user_name()."',time_m=".TIME_NOW." WHERE log_id=$ad_id AND type=4");
                    }

                    $json['error'] = 'success';
                } else {
                    $json['error'] = 'not_perm';
                }
            } else {
                $json['error'] = 'not_ad';
            }
        }
        echo json_encode($json);
        exit;
    }

    function upload() {
        $json['error'] = 'not_uploaded';
        $json['image_url'] = '';

        if (User::is_login()) {
            $upload_path = DIR_CACHE . 'ad_images/';
            AZLib::CheckDir($upload_path);
            $uploadFile = $_FILES["fast_upload"];
            if (isset($uploadFile) && $uploadFile['name']) {
                $file_name = TIME_NOW . strtolower($uploadFile['name']);
                $sourceName = $uploadFile['tmp_name'];
                $file_ext = AZLib::getExtension($file_name);
                if (in_array($file_ext, array('.jpg', '.jpeg', '.gif', '.png'))) {
                    if (!$uploadFile['error']) {

                        $newFile = $upload_path . $file_name;
                        //$width = 300;
                        //$height = 255;
                        //$this->genImageFromSource($sourceName,$upload_path.$file_name,$width);
                        include_once(ROOT_PATH . 'core/ThumbImage.php');
                        $ThumbImage = new ThumbImage();
                        $ThumbImage->ThumbImageWithBackground($sourceName, $file_name, 300); // Tạo cache đã resize cho ảnh quảng cáo

                        // Upload lên server ảnh, fix lỗi không tìm thấy file cache với server load balancing
                        $img_path = 'upnew/cpc/';
                        AZLib::ftp_image_put_file($img_path.$file_name, $newFile,IMAGE_SERVER_NO);

                        $img_url = $img_path . $file_name;
                        $json['image_domain'] = 'http://'.CGlobal::$img_server[IMAGE_SERVER_NO];
                        $json['image_url'] = $img_url;
                        $json['error'] = 'success';
                    } elseif ($uploadFile['error'] == 1) {
                        $json['error'] = 'over_max_size';
                    }
                } else {
                    $json['error'] = 'ext_invalid'; //Sai định dạng file
                }
            } else {
                $json['error'] = 'destination_not_exist';
            }
        } else {
            $json['error'] = 'not_login';
        }

        echo json_encode($json);
        exit();
    }

}

//class
?>